From 9836389fde5c540ec87e048399abc95a1b325098 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 14 Jun 2023 03:31:11 +0200 Subject: [PATCH] vulkan: Repurpose debug flags for image uploads Now that we don't use the old environment variables anymore to force staging buffer/image uploads, we don't need them. However, we do autodetect the fast path for avoiding a staging buffer now, and we might want to be able to turn that off for testing. So add GSK_DEBUG=staging that does exactly that. --- gsk/gskdebug.c | 3 +-- gsk/gskdebugprivate.h | 3 +-- gsk/vulkan/gskvulkanimage.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/gsk/gskdebug.c b/gsk/gskdebug.c index f3f183c3ef..811616e683 100644 --- a/gsk/gskdebug.c +++ b/gsk/gskdebug.c @@ -15,8 +15,7 @@ static const GdkDebugKey gsk_debug_keys[] = { { "geometry", GSK_DEBUG_GEOMETRY, "Show borders (when using cairo)" }, { "full-redraw", GSK_DEBUG_FULL_REDRAW, "Force full redraws" }, { "sync", GSK_DEBUG_SYNC, "Sync after each frame" }, - { "vulkan-staging-image", GSK_DEBUG_VULKAN_STAGING_IMAGE, "Use a staging image for Vulkan texture upload" }, - { "vulkan-staging-buffer", GSK_DEBUG_VULKAN_STAGING_BUFFER, "Use a staging buffer for Vulkan texture upload" } + { "staging", GSK_DEBUG_STAGING, "Use a staging image for texture upload (Vulkan only)" }, }; static guint gsk_debug_flags; diff --git a/gsk/gskdebugprivate.h b/gsk/gskdebugprivate.h index bb23101b34..405cbd7877 100644 --- a/gsk/gskdebugprivate.h +++ b/gsk/gskdebugprivate.h @@ -18,8 +18,7 @@ typedef enum { GSK_DEBUG_GEOMETRY = 1 << 9, GSK_DEBUG_FULL_REDRAW = 1 << 10, GSK_DEBUG_SYNC = 1 << 11, - GSK_DEBUG_VULKAN_STAGING_IMAGE = 1 << 12, - GSK_DEBUG_VULKAN_STAGING_BUFFER = 1 << 13 + GSK_DEBUG_STAGING = 1 << 12 } GskDebugFlags; #define GSK_DEBUG_ANY ((1 << 13) - 1) diff --git a/gsk/vulkan/gskvulkanimage.c b/gsk/vulkan/gskvulkanimage.c index c7ec215c46..7e20cba9fb 100644 --- a/gsk/vulkan/gskvulkanimage.c +++ b/gsk/vulkan/gskvulkanimage.c @@ -437,7 +437,7 @@ gsk_vulkan_image_map_memory (GskVulkanImage *self, g_assert (self->vk_image_layout == VK_IMAGE_LAYOUT_UNDEFINED || self->vk_image_layout == VK_IMAGE_LAYOUT_PREINITIALIZED); - if (gsk_vulkan_memory_can_map (self->memory, TRUE)) + if (!GSK_DEBUG_CHECK (STAGING) && gsk_vulkan_memory_can_map (self->memory, TRUE)) gsk_vulkan_image_map_memory_direct (self, uploader, map); else gsk_vulkan_image_map_memory_indirect (self, uploader, map); -- 2.30.2